package com.my.storage.store;

import lombok.Data;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;

import javax.servlet.http.HttpServletRequest;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

/**
 * @author xhw
 */
@Data
public class PathStore {
    /**
     * 处理路径字段的规范
     */
    public static String normalizePath(String path) {
        if (path == null || path.isEmpty()) {
            return "/";
        }

        // 确保路径以斜杠开头
        if (!path.startsWith("/")) {
            path = "/" + path;
        }

        return path;
    }

    /**
     * 计算路径的深度，根目录为1，每一级子目录深度加1。
     */
    public static int calculateDepth(String path) {
        if (path.equals("/")) {
            return 1;
        }
        //分成几部分就应该是几层
        return path.split("/").length - 1;
    }

//    /**
//     * 创建下载链接
//     *
//     * @param logicPath
//     * @return
//     */
    public static String createDownloadUrl(String logicPath) {
        return ServletUriComponentsBuilder.fromCurrentContextPath()
                .path("/file/download/")
                .queryParam("path", logicPath)
                .build().toUriString();
    }
}